﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
//
using OsPortal;
using System.Data.SqlClient;
using System.Data;

/// <summary>
/// Summary description for clsPhongTro
/// </summary>
public class clsPhongTro
{
    static string strClassName = "clsPhongTro";

    public struct stPhongTro
    {
        public String P_MOD;
        public String PT_ID;
        public String US_ID;
        public String KV_ID;
        public String KP_ID;
        public String GV_ID;
        public String pt_tieude;
        public String pt_tieudekhongdau;
        public String pt_diachi;
        public String pt_diachikhongdau;
        public String pt_dienthoai;
        public String pt_kinhdo;
        public String pt_vido;
        public Double pt_dientich;
        public Double pt_giaphong;
        public String pt_motachitiet;
        public DateTime pt_ngaydang;
        public DateTime pt_ngaycapnhat;
        public Int32 pt_luotxem;
        public Boolean pt_conphong;
        public String PT_Anh1;
        public String PT_Anh2;
        public String PT_Anh3;
        public String PT_Anh4;
        public Int32 pt_songaydattinvip;
        public Int32 pt_giatienVip;
        public DateTime pt_ngaybatdaudattinvip;
        public Boolean pt_trangthai;
        public String PT_Video_Youtube;
        public Int32 PT_GOLD_AUTO;
        public String LSTDATA_AUTO;
    }


	public clsPhongTro()
	{
		//
		// TODO: Add constructor logic here
		//
	}
    /// <summary>
    /// Lay danh sach va tim kiem phong tro
    /// Author: ThuanNH
    /// Create: 2013/08/06
    /// </summary>
    /// <param name="iCurrPage">Trang hien tai</param>
    /// <param name="iPageSize">So luong ban ghi/ 1trang</param>
    /// <param name="strKhuVuc">ten khu vuc khong dau</param>
    /// <param name="iGia">gia</param>
    /// <param name="iDienTich">dien tich</param>
    /// <param name="strPT_ID">ma phong tro</param>
    /// <param name="strKP_TENKHONGDAU">Kiểu phòng trọ - không dấu</param>
    /// <param name="strUS_ID">Mã khách hàng</param>
    /// <returns></returns>
    public static DataSet PhongTro_FND(int iCurrPage
                                        , int iPageSize
                                        , string strKhuVuc
                                        , int iGia
                                        , int iDienTich
                                        , string strPT_ID
                                        , string strKP_TENKHONGDAU
                                        , string strUS_ID
                                        , int iMod)
    {
        DataSet dtData = null;
        try
        {
            dtData = oSqlDataHelper.sExecuteDataSet("PHONGTRO_FND", new SqlParameter[]{
                new SqlParameter("@P_CURRPAGE",iCurrPage)
                ,new SqlParameter("@P_PAGESIZE",iPageSize)
                ,new SqlParameter("@P_KHUVUC",strKhuVuc)
                ,new SqlParameter("@P_GIA",iGia)
                ,new SqlParameter("@P_DIENTICH",iDienTich)
                ,new SqlParameter("@P_PT_ID",strPT_ID)
                ,new SqlParameter("@KP_TENKHONGDAU",strKP_TENKHONGDAU)
                ,new SqlParameter("@P_US_ID",strUS_ID)
                ,new SqlParameter("@P_MOD",iMod)
            });
            return dtData;
        }
        catch (Exception ex)
        {
            OsPortal.oFileHelper.WriteLogErr(strClassName, "PhongTro_FND", ex.ToString());
            return null;
        }
        finally
        {
            //dtData.Dispose();
        }
    }

    /// <summary>
    /// Function Name: CẬP NHẬT LƯỢT XEM TIN PHÒNG TRỌ
    /// Create Date: 2011
    /// Update Date:
    /// Author: Thuannh
    /// </summary>
    /// <param name="PT_ID">Mã phòng trọ</param>
    /// <returns>true nếu cập nhật thành công</returns>
    public static bool fncResetLuotXem(string PT_ID)
    {
        try
        {
            oSqlDataHelper.sExecute("PHONGTRO_ACT_RESET_VIEW", new SqlParameter[]{
                new SqlParameter("@PT_ID",PT_ID),
            });
        }
        catch (Exception ex)
        {
            oFileHelper.WriteLogErr(strClassName, "fncResetLuotXem", ex.ToString());
            return false;
        }
        return true;
    }

   
    /// <summary>
    /// Tắt tin phòng trọ cho pt_conphong = false
    /// Author: NguyenTV - 25/10/2013
    /// </summary>
    /// <param name="strPT_ID"></param>
    /// <returns></returns>
    public static string fncOFF_TIN(string strPT_ID)
    {
        DataTable dt = null;
        try
        {
            dt = oSqlDataHelper.sExecuteDataTable("PHONGTRO_ACT_OFFTIN", new SqlParameter[]{
            new SqlParameter("@P_PT_ID",strPT_ID),
            });
            if (dt == null) return "";
            if (dt.Rows.Count <= 0) return "";

            string strResult = dt.Rows[0]["ERRNAME"].ToString();
            return strResult;
        }
        catch (Exception ex)
        {
            oFileHelper.WriteLogErr(strClassName, "fncOFF_TIN()", ex.ToString());
            return "Có lỗi phát sinh! Vui lòng liên hệ BQT";
        }
    }

    public static string fncON_TIN(string strPT_ID)
    {
        DataTable dt = null;
        try
        {
            dt = oSqlDataHelper.sExecuteDataTable("PHONGTRO_ACT_ON_TIN", new SqlParameter[]{
            new SqlParameter("@P_PT_ID",strPT_ID),
            });
            if (dt == null) return "";
            if (dt.Rows.Count <= 0) return "";

            string strResult = dt.Rows[0]["ERRNAME"].ToString();
            return strResult;
        }
        catch (Exception ex)
        {
            oFileHelper.WriteLogErr(strClassName, "fncOFF_TIN()", ex.ToString());
            return "Có lỗi phát sinh! Vui lòng liên hệ BQT";
        }
    }

    /// <summary>
    /// Lấy danh sách phòng trọ VIP
    /// </summary>
    /// <param name="strGV_ID">Kiểu tin VIP</param>
    /// <param name="strKHUVUC">Khu vực (Hà Nội - HCM)</param>
    /// <returns></returns>
    public static DataTable fncPhongTro_FND_VIP(string strGV_ID, string strKHUVUC)
    {
        DataTable dt = null;
        try
        {
            dt = oSqlDataHelper.sExecuteDataTable("PHONGTRO_FND_VIP", new SqlParameter[]{
            new SqlParameter("@P_GV_ID",strGV_ID),
            new SqlParameter("@P_KHUVUC",strKHUVUC),
            });
        }
        catch (Exception ex)
        {
            oFileHelper.WriteLogErr(strClassName, "fncPhongTro_FND_VIP()", ex.ToString());
        }
        return dt;
    }

    /// <summary>
    /// Function Name: UP TIN LEN TRANG CHU
    /// Create Date: 25/09/2013
    /// Update Date:
    /// Author: Thuannh
    /// </summary>
    /// <param name="PT_ID">Mã phòng trọ</param>
    /// <returns>true nếu cập nhật thành công</returns>
    public static string fncUp_Tin(string strPT_ID)
    {
        DataTable dt = null;
        try
        {
            dt = oSqlDataHelper.sExecuteDataTable("PHONGTRO_ACT_UPTIN", new SqlParameter[]{
            new SqlParameter("@P_PT_ID",strPT_ID),
            });
            if (dt == null) return "";
            if (dt.Rows.Count <= 0) return "";

            string strResult = dt.Rows[0]["ERRNAME"].ToString();
            return strResult;
        }
        catch (Exception ex)
        {
            oFileHelper.WriteLogErr(strClassName, "GetCT_PhongTro()", ex.ToString());
            return "Có lỗi phát sinh! Vui lòng liên hệ BQT";
        }
    }

    /// <summary>
    /// Function Name: Xử lý thêm, sửa, xóa phòng trọ
    /// Create Date: 25/09/2013
    /// Update Date:
    /// Author: Thuannh
    /// </summary>
    /// <param name="PT_ID">Mã phòng trọ</param>
    /// <returns>true nếu cập nhật thành công</returns>
    public static string fncPhongTro_Act(stPhongTro objPhongTro, string strMod)
    {
        try
        {
            string strPT_ID = objPhongTro.PT_ID;
            if (strMod == basConst.MOD_ADD) strPT_ID = clsCommon.fncAutoCreateID("PT", "phongtro", "PT_ID");
            //
            DataTable dt = oSqlDataHelper.sExecuteDataTable("PHONGTRO_ACT", new SqlParameter[]{
                new SqlParameter("@P_MOD",strMod),
                new SqlParameter("@P_PT_ID",strPT_ID),
                new SqlParameter("@P_US_ID",objPhongTro.US_ID),
                new SqlParameter("@P_KV_ID",objPhongTro.KV_ID),
                new SqlParameter("@P_KP_ID",objPhongTro.KP_ID),
                new SqlParameter("@P_PT_TIEUDE",objPhongTro.pt_tieude),
                new SqlParameter("@P_PT_DIACHI",objPhongTro.pt_diachi),
                new SqlParameter("@P_PT_KINHDO",objPhongTro.pt_kinhdo),
                new SqlParameter("@P_PT_VIDO",objPhongTro.pt_vido),
                new SqlParameter("@P_PT_DIENTICH",objPhongTro.pt_dientich),
                new SqlParameter("@P_PT_GIAPHONG",objPhongTro.pt_giaphong),
                new SqlParameter("@P_PT_MOTACHITIET",objPhongTro.pt_motachitiet),
                new SqlParameter("@P_PT_DIENTHOAI",objPhongTro.pt_dienthoai),
                new SqlParameter("@P_PT_ANH1",objPhongTro.PT_Anh1),
                new SqlParameter("@P_PT_ANH2",objPhongTro.PT_Anh2),
                new SqlParameter("@P_PT_ANH3",objPhongTro.PT_Anh3),
                new SqlParameter("@P_PT_ANH4",objPhongTro.PT_Anh4),
                new SqlParameter("@P_PT_VIDEO_YOUTUBE",objPhongTro.PT_Video_Youtube),
                new SqlParameter("@P_PT_TRANG_THAI",objPhongTro.pt_trangthai),
            });
            if (dt == null) return "";
            if (dt.Rows.Count <= 0) return "";

            string strResult = dt.Rows[0]["ERRNAME"].ToString();
            return strResult;
        }
        catch (Exception ex)
        {
            oFileHelper.WriteLogErr(strClassName, "fncPhongTro_Act", ex.ToString());
            return "Có lỗi phát sinh! Vui lòng liên hệ BQT";
        }
    }

    /// <summary>
    /// UP tin Vip
    /// Author: NguyenTV - 08/10/2013
    /// </summary>
    /// <param name="objPhongTro"></param>
    /// <param name="strError"></param>
    /// <returns></returns>
    public static bool fncUp_Vip(stPhongTro objPhongTro, out string strError)
    {
        try
        {
        DataTable dt = oSqlDataHelper.sExecuteDataTable("PHONGTRO_ACT_UPDATE_VIP", new SqlParameter[]{
                new SqlParameter("@P_PT_ID",objPhongTro.PT_ID),
                new SqlParameter("@P_US_ID",objPhongTro.US_ID),
                new SqlParameter("@P_GV_ID",objPhongTro.GV_ID),
                new SqlParameter("@P_SONGAYHIENTHI",objPhongTro.pt_songaydattinvip),
                new SqlParameter("@P_NGAYBATDAUHIENTHI",objPhongTro.pt_ngaybatdaudattinvip),
                new SqlParameter("@P_GIA_TIEN",objPhongTro.pt_giatienVip),
            });
            if (dt == null) { strError = ""; return true; }
            if (dt.Rows.Count <= 0) { strError = ""; return true; }
            //
            strError = OsPortal.oStringHelper.fncCnvNullToString(dt.Rows[0]["ERRNAME"]);
            return false;
        }
        catch (Exception ex)
        {
            OsPortal.oFileHelper.WriteLogErr(strClassName, "fncUp_Vip", ex.ToString());
            strError = "Có lỗi phát sinh, vui lòng liên hệ BQT";
            return false;
        }
    }


    /// <summary>
    /// Tự động up tin phòng trọ
    /// Author: NguyenTV - 08/10/2013
    /// </summary>
    /// <param name="objPhongTro"></param>
    /// <param name="strError"></param>
    /// <returns></returns>
    public static bool fncAuto_UpTin(stPhongTro objPhongTro, out string strError)
    {
        try
        {
            DataTable dtResult = oSqlDataHelper.sExecuteDataTable("AUTOPOST_INSERT", new SqlParameter[]{
                new SqlParameter("@P_DATA",objPhongTro.LSTDATA_AUTO),
                new SqlParameter("@P_GOLD",objPhongTro.PT_GOLD_AUTO),
                new SqlParameter("@P_USID",objPhongTro.US_ID),
            });
            if (dtResult == null) { strError = ""; return true; }
            if (dtResult.Rows.Count <= 0) { strError = ""; return true; }
            //
            strError = OsPortal.oStringHelper.fncCnvNullToString(dtResult.Rows[0]["ERRNAME"]);
            return false;
        }
        catch (Exception ex)
        {
            OsPortal.oFileHelper.WriteLogErr(strClassName, "fncAuto_UpTin", ex.ToString());
            strError = "Có lỗi phát sinh, vui lòng liên hệ BQT";
            return false;
        }
    }

    /// <summary>
    /// Lấy danh sách phòng trọ có AUTO_UP
    /// Trần Văn Nguyên - 11/07/2013
    /// </summary>
    /// <param name="strUS">mã người dùng</param>
    /// <returns></returns>
    public static DataTable fncGetlstPT_AUTO(string strUS_ID)
    {
        DataTable dt = null;
        try
        {
            dt = oSqlDataHelper.sExecuteDataTable("PHONGTRO_LSTAUTO_POST", new SqlParameter[]{
                new SqlParameter("@P_US_ID",strUS_ID),
            });
        }
        catch (Exception ex)
        {
            OsPortal.oFileHelper.WriteLogErr(strClassName, "fncGetlstPT_AUTO", ex.ToString());
        }
        return dt;
    }

    /// <summary>
    /// Get danh sách Lịch AUTO UP TIN 
    /// Trần Văn Nguyên - 11/07/2013
    /// </summary>
    /// <param name="strPT_ID">mã phòng trọ</param>
    /// <returns></returns>
    public static DataTable GetlstAUTO_ByPTID(string strPT_ID)
    {
        DataTable dt = null;
        try
        {
            dt = oSqlDataHelper.sExecuteDataTable("PHONGTRO_LSTAUTO_BY_PT", new SqlParameter[]{
                new SqlParameter("@P_PT_ID",strPT_ID),
            });
        }
        catch (Exception ex)
        {
            OsPortal.oFileHelper.WriteLogErr(strClassName, "GetlstAUTO_ByPTID", ex.ToString());
        }
        return dt;
    }

    /// <summary>
    /// Cập nhật trạng thái cho phòng trọ (hiển thị hoặc không hiển thị)
    /// </summary>
    /// <param name="strPT_ID">Mã phòng trọ</param>
    /// <param name="status">Trạng thái</param>
    /// <returns></returns>
    public static bool fncUpdateStatus(string strPT_ID,bool status)
    {
        int i = 0;
        try
        {
            i = oSqlDataHelper.sExecute("UPDATE PHONGTRO SET PT_TRANGTHAI = '" + status + "' WHERE PT_ID='" + strPT_ID + "'");
        }
        catch (Exception ex)
        {
            OsPortal.oFileHelper.WriteLogErr(strClassName, "fncUpdateStatus", ex.ToString());
        }
        if (i > 0) return true;
        else return false;
    }
}